package com.reliable.service.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;

/**
 * AI分析会话统计实体
 */
@Data
@ApiModel(value = "AI分析会话统计")
@JsonInclude(JsonInclude.Include.NON_NULL)
@TableName("reliable_analyzed_sessions")
public class ReliableAnalyzedSession extends BaseEntitys {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "会话ID", position = 0)
    @TableId(value = "session_id", type = IdType.INPUT)
    private String sessionId;

    @ApiModelProperty(value = "任务ID", position = 1)
    private Long taskId;

    @ApiModelProperty(value = "会话开始时间", position = 2)
    private LocalDateTime dialogStartTime;

    @ApiModelProperty(value = "会话结束时间", position = 3)
    private LocalDateTime dialogEndTime;

    @ApiModelProperty(value = "总消息数", position = 4)
    private Integer totalMessagesCount;

    @ApiModelProperty(value = "客户消息数", position = 5)
    private Integer clientMessageCount;

    @ApiModelProperty(value = "客服消息数", position = 6)
    private Integer agentMessageCount;

    @ApiModelProperty(value = "检测到的交易数", position = 7)
    private Integer totalTransactionsDetected;

    @ApiModelProperty(value = "可疑账户数", position = 8)
    private Integer suspectAccountCount;

    @ApiModelProperty(value = "是否含敏感词", position = 9)
    private Boolean containsSensitiveKeywords;

    @ApiModelProperty(value = "风险等级", position = 10)
    private String riskLevel;

    @ApiModelProperty(value = "充值尝试次数", position = 11)
    private Integer totalRechargeAttempts;

    @ApiModelProperty(value = "成功充值次数", position = 12)
    private Integer successfulRechargeCount;

    @ApiModelProperty(value = "失败充值次数", position = 13)
    private Integer failedRechargeCount;

    @ApiModelProperty(value = "不同充值方式数", position = 14)
    private Integer distinctRechargeMethods;

    @ApiModelProperty(value = "诈骗套路总结", position = 15)
    private String fraudSummary;

    // 非数据库字段
    @TableField(exist = false)
    @ApiModelProperty(value = "业务会话ID", position = 16)
    private String businessSessionId;


    /**
     * 公司id
     */
    @ApiModelProperty(value = "公司id", position = 17)
    private Long companyId;

    /**
     * 访客id
     */
    @ApiModelProperty(value = "访客id", position = 18)
    private String visitorId;

    /**
     * 客服账号
     */
    @ApiModelProperty(value = "客服账号", position =19)
    private String agentAccount;

    /**
     * 来源页面
     */
    @ApiModelProperty(value = "来源页面", position = 20)
    private String referrerUrl;

    /**
     * 访问页面
     */
    @ApiModelProperty(value = "访问页面", position = 21)
    private String pageUrl;
}